import pandas as pd

# 学科 ID 到学科名称的映射
SUBJECT_MAP = {
    1: "语文",
    2: "数学",
    3: "英语",
    4: "物理",
    5: "化学",
    6: "生物",
    7: "政治",
    8: "历史",
    9: "地理",
    10: "信息技术",
    11: "通用技术",
    12: "美术"
}


def process_excel(input_file, output_file):
    # 读取 Excel 文件的所有 sheet
    excel_data = pd.read_excel(input_file, sheet_name=None)

    # 存储处理后的 sheet 数据
    processed_sheets = {}

    # 遍历每个 sheet
    for sheet_name, df in excel_data.items():
        # 添加 [场景名称] 列
        df['场景名称'] = sheet_name

        # 添加 [学科名称] 列，根据 [学科ID] 映射
        df['学科名称'] = df['学科ID'].map(SUBJECT_MAP)

        # 检查是否有未映射的学科ID
        if df['学科名称'].isna().any():
            print(f"Warning: Some 学科ID values in sheet '{sheet_name}' do not map to a subject name.")

        # 存储处理后的 DataFrame
        processed_sheets[sheet_name] = df

    # 保存到新的 Excel 文件
    with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
        for sheet_name, df in processed_sheets.items():
            df.to_excel(writer, sheet_name=sheet_name, index=False)


# 示例用法（假设 input.xlsx 已上传或通过其他方式提供）
input_file = "D:\\project_file\\老卷下线\\E讲堂目录绑定包信息.xlsx"  # 替换为实际文件路径或 BytesIO 对象
output_file = "20250923E讲堂目录绑定包信息.xlsx"
process_excel(input_file, output_file)
